#导入模块
import pymysql

#定义一个学生类

class Stu:

    #构造方法
    def __init__(self):
        
        #连接数据库
        self.db = pymysql.connect(host='localhost',user='root',password='',db='mydb',charset='utf8')
        #创建游标对象
        self.cursor = self.db.cursor()


    #定义数据查询函数
    def findAll(self):

        sql = "select * from stu" 
        self.cursor.execute(sql) #执行sql
        data = self.cursor.fetchall() #获取返回的数据列表
        print("学生信息：")
        for i in data:
            print("|{0:5}|{1:5}|{2:5}|{3:8}|{4:5}".format(i[0],i[1],i[2],i[3],i[4]))

    #定义数据删除函数
    def delete(self,del_id):

        try:
            
            sql = "delete from stu where id = %s"%(del_id)
            #self.cursor.execute(sql)
            m = self.cursor.execute(sql)
            self.db.commit()
            
            print("删除成功条数：",m)
            
        except Exception as e:
            self.db.rollback()
            print("删除失败。原因：",e)
            
    #定义数据插入函数
    def insert(self,in_data):

        try:
            
            sql = "insert into stu(name,age,sex,classid) values({})".format(in_data)
            #self.cursor.execute("insert into stu(name,age,sex,classid) values({})".format(in_data))
            m = self.cursor.execute(sql) #执行sql
            self.db.commit()
            print("插入成功条数：",m)
        except Exception as e:
            self.db.rollback()
            print("插入失败。原因：",e)
            
    #定义修改函数

    #def update(self,up_data,id):
    #    sql = "update stu set name='%s',age='%d',sex='%s',classid='%s' where id=%d"%(up_data,id)
    #    self.cursor.exectue(sql)
    #    self.db.commit()
    #    m = self.cursor.execute(sql)
    #    print("修改成功条数：",m)
        
    #析构方法
    def __del__(self):
        self.db.close()
        print("数据库已关闭。")
